package com.example.weektwo.async01;

import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.TextView;

import com.example.weektwo.R;
import com.example.weektwo.Utils.HttpUtils;

public class NewsInfoActivity extends AppCompatActivity {
    String url = "http://v.juhe.cn/toutiao/index?type=&key=44f0b26e64c09fcf3df048aa22bd5445";
    TextView tv;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_news_info);
        tv = findViewById(R.id.textView);
        //启动异步任务
        LoadNetDataAsyncTask task=new LoadNetDataAsyncTask();
        task.execute(url);
    }

    //1.写一个内部类 继承AsyncTask 传入数据1：执行任务时，传入的数据的类型，2：表示下载进度的类型3：在后头执行完doInBackground所返回主线程的类型
    class LoadNetDataAsyncTask extends AsyncTask<String, Void, String> {
        ProgressDialog dialog;
        public LoadNetDataAsyncTask(){
            dialog=new ProgressDialog(NewsInfoActivity.this);
            dialog.setTitle("提示信息");
            dialog.setMessage("正在加载中......");
        }
        //2.重写三个方法

        @Override
        protected void onPreExecute() {//开启请求之前的操作，通常进行初始化操作，在主线程工作的方法
            super.onPreExecute();
            dialog.show();
        }

        @Override
        protected String doInBackground(String... params) {//子线程执行的方法开启子线程，进行耗时操作，将获取到的数据返回主线程
            String json = HttpUtils.getJsonByNetwork(params[0]);
            return  json;
        }

        @Override
        protected void onPostExecute(String s) {//回到主线程 更新UI
            super.onPostExecute(s);
            dialog.dismiss();
            if (!TextUtils.isEmpty(s)){
                tv.setText(s);
            }
        }
    }



}
